function ListNode(x){
    this.val = x;
    this.next = null;
}
function deleteDuplication(pHead)
{
    // write code here
    var dummy = new ListNode(-1) // 建立一个虚拟头结点用来保留 往后的答案会存在dummy后面
    var tail = dummy // tail表示当前链表的尾结点
    while(pHead !== null){ // 当phead还有值的时候就要继续指向
      if(pHead.next === null || pHead.next.val !== pHead.val){ // 如果当前节点下一个节点是null 当前节点key被保留 如果当前节点的下一个节点 和 当前节点的值不想听 也可以被保留
        tail.next = pHead // 把当前节点插入链表
        tail = pHead // 让尾指针指向当前节点
      }
     
      while(pHead.next !== null && pHead.val === pHead.next.val){ // 当两个值相等的时候
        pHead = pHead.next // 调过这个值
      }
      pHead = pHead.next // 让phead 指向下一个节点 判断循环条件对于上一中情况 是判断循环条件 或者 是判断下一个节点
      // 对于下一中情况是 让phead不指向重复节点
    }
    tail.next = null // 此时的tail.next 还指向着之前的phead.next 需要让他指向 null

    return dummy.next
}
module.exports = {
    deleteDuplication : deleteDuplication
};